package NiMing.project;
/*
    匿名内部类的方式实现多线程：
        把子类继承父类，重写父类中的方法，创建子类对象 或者是实现接口，重写接口中的抽象方法，创建实现类这些步骤合成一步完成

    作用：简化代码

    格式：
        new 父类/接口 （）{

        }；
 */
public class PracticeMain {
    public static void main(String[] args) {
        new Thread(){ //子类是匿名的，子类就是{}中的内容
            @Override
            public void run() {
                for (int i = 0; i < 50; i++) {
                    System.out.println("内名内部类1----》" + i);
                }
            }
        }.start(); //这里因为匿名，所以直接 . 方法名（）去引用。

       Runnable r =  new Runnable(){  //接口的内名内部类需要有个变量去接收它，为了能向Thread类的构造方法中传递地址
            @Override
            public void run() {  //接口的内名内部类创建
                for (int i = 0; i < 50; i++) {
                    System.out.println("内名内部类2----》" + i);
                }
            }
        };
        new Thread(r).start();

        //接口的内名内部类更简便的一种写法：
        new Thread(new Runnable() {  //直接把接口的匿名内部类整体给到Thread类的构造方法中：new Runnable() {}
            @Override
            public void run() {
                for (int i = 0; i < 50; i++) {
                    System.out.println("内名内部类3----》" + i);
                }
            }
        }).start();

    }
}
